windows 您所在的位置:网站首页 cygwin wsl windows

windows

2023-03-25 10:11| 来源: 网络整理| 查看: 265

У меня следующая проблема:

Когда я запускаю сценарий оболочки, который был сохранен с окончаниями строки CR + LF, я получаю следующую ошибку:

myscript.sh: line 1: cd: $'somedir\\someotherdir\r': No such file or directory

Я исследовал проблему, и есть решение для оболочки Cygwin, найденное здесь а>:

Создайте файл .bashrc

Поместите это внутрь:

export SHELLOPTS set -o igncr Перезагрузить оболочку Cygwin

Однако я использую Cmder и хочу применить это в нем. Но я не знаю как. Как отмечено здесь, Cygwin имел возможность установить использование окончаний файлов DOS по умолчанию во время установки, но избавился от этого (не знаю, почему).

Самое странное, что у меня такие же настройки на моем старом компьютере, тоже Windows 10, и все работает хорошо, даже с окончаниями CRLF...

windows cygwin line-endings 1 Marek Lisý 6 Фев 2017 в 19:08 Неправильный вопрос. В cygwin используйте окончания LF, иначе что-то всегда будет ломаться в каком-то пакете.  – matzeri 6 Фев 2017 в 19:17 1 Хорошо, но как объяснить, что на старом компьютере все работало?  – Marek Lisý 6 Фев 2017 в 19:26 Сколько лет вашей установке Cygwin? Опция text/binary была удалена из программы установки в 2013 году.  – matzeri 7 Фев 2017 в 14:12 Да, возможно, он был старше. У меня нет компьютера под рукой банкомат. Я, однако, вероятно, остановился бы на окончаниях LF. Просто было любопытно, почему раньше работало, а сейчас нет (по какой причине отключили поддержку).  – Marek Lisý 8 Фев 2017 в 15:48 2 ответа

Я столкнулся с той же проблемой при обновлении очень старой версии Cygwin до последней. Всего лишь для нескольких ограниченных вызовов «sed» я явно добавил \r к выходным данным, чтобы некоторые другие нижестоящие инструменты, отличные от cygwin, были довольны.

sed s_(complicated-regex-with-capture)_\1\r_g infile > outfile

Гуру регулярных выражений, вероятно, мог бы улучшить этот подход, чтобы дополнительно захватывать и выдавать «\ r», только если он найден в данных.

sed s_(capture1)(capture\r-or-empty:\r*)$_\1\2_g infile > outfile 0 englebart 19 Май 2020 в 21:36

Вы также можете использовать dos2unix, который можно установить вместе с Cygwin.

0 eorojas 7 Июл 2021 в 01:19


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有